package com.easystudy.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.easystudy.iot.error.ReturnValue;
import com.easystudy.iot.model.ConfigInfo;
import com.easystudy.iot.model.DeviceInfo;
import com.easystudy.iot.model.ModelInfo;
import com.easystudy.iot.service.IotService;

/**
 * @文件名称: TestController.java
 * @功能描述: AI盒子对接接口
 * @版权信息: www.easystudy.com
 * @技术交流: 961179337(QQ群)
 * @编写作者: lixx2048@163.com
 * @联系方式: 941415509(QQ)
 * @开发日期: 2021年6月8日
 * @历史版本: V1.0 
 * @备注信息:
 */
@RestController
@RequestMapping("/test")
public class TestController {
	@Autowired
	private IotService iotService;
	
	/**
	 * @功能描述: 重启某AI盒子
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@GetMapping("/reboot")
	public ReturnValue<String> reboot(@RequestParam("boxId")String boxId) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.reboot(cmdId, boxId);
	}
	
	/**
	 * @功能描述: 获取AI盒子配置
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@GetMapping("/config")
	public ReturnValue<String> getConfig(@RequestParam("boxId")String boxId) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.getConfig(cmdId, boxId);
	}
	
	/**
	 * @功能描述: 更新AI盒子配置
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PutMapping("/config")
	public ReturnValue<String> setConfig(@RequestParam("boxId")String boxId, @RequestBody ConfigInfo config) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.setConfig(cmdId, boxId, config);
	}
	
	/**
	 * @功能描述: 添加AI盒子模型
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PostMapping("/model")
	public ReturnValue<String> addModel(@RequestParam("boxId")String boxId, @RequestBody ModelInfo model) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.addModel(cmdId, boxId, model);
	}
	
	/**
	 * @功能描述: 更新AI盒子模型
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PutMapping("/model")
	public ReturnValue<String> setModel(@RequestParam("boxId")String boxId, @RequestBody ModelInfo model) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.updateModel(cmdId, boxId, model);
	}
	
	/**
	 * @功能描述: 删除AI盒子模型
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@DeleteMapping("/model")
	public ReturnValue<String> delModel(@RequestParam("boxId")String boxId, @RequestParam("modelId")String modelId) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.deleteModel(cmdId, boxId, modelId);
	}
	
	/**
	 * @功能描述: 添加AI盒子设备
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PostMapping("/device")
	public ReturnValue<String> addDevice(@RequestParam("boxId")String boxId, @RequestBody DeviceInfo device) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.addDevice(cmdId, boxId, device);
	}
	
	/**
	 * @功能描述: 更新AI盒子设备
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@PutMapping("/device")
	public ReturnValue<String> setDevice(@RequestParam("boxId")String boxId, @RequestBody DeviceInfo device) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.updateDevice(cmdId, boxId, device);
	}
	
	/**
	 * @功能描述: 删除AI盒子设备
	 * @版权信息: www.easystudy.com
	 * @技术交流: 961179337(QQ群)
	 * @编写作者: lixx2048@163.com
	 * @开发日期: 2023年11月15日
	 * @备注信息: 
	 */
	@DeleteMapping("/device")
	public ReturnValue<String> delDevice(@RequestParam("boxId")String boxId, @RequestParam("deviceId")String deviceId) throws Exception {
		String cmdId = java.util.UUID.randomUUID().toString().replace("-", "");
		return iotService.deleteDevice(cmdId, boxId, deviceId);
	}
}
